草庐IT

android - Android 设备上的 Times New Roman

全部标签

windows - 没有符号的 Windows 和 Mac OS X/Linux 上的调用堆栈

在Windows上,如果调用堆栈中没有涉及模块的符号,比如故障转储,那么调用堆栈中该模块下面的所有调用都是错误的(不仅缺少名称,而且缺少序列).在Linux或MacOSX上,如果没有符号,则不会显示函数名称,但调用顺序仍然存在。调用堆栈展开或符号生成机制的什么差异导致了这种差异? 最佳答案 在Windows中,仍然可以在没有符号信息的情况下获取应用程序的完整调用堆栈,前提是将“堆栈帧指针”放在调用堆栈上。如果您使用调试进行编译,这些堆栈帧指针由VisualStudio编译器生成,但如果您使用优化(/Ox)进行编译,则不会生成这些堆栈

windows - 获取磁盘设备的物理设备对象名称

我需要从Windows上的用户模式应用程序检索磁盘设备的“物理设备对象名称”,如设备管理器中所示。我现在有一个解决方案,它涉及一个通过IOCTL加载和询问的内核驱动程序。一旦进入内核领域,我就可以毫不费力地找到那个名字。如果可能,我想避免使用内核模块。有什么想法吗? 最佳答案 您可以使用设置API函数获取它。具体来说,我相信您可以通过SetupDiGetDeviceRegistryProperty和SPDRP_PHYSICAL_DEVICE_OBJECT_NAME获得它。 关于windo

windows - 我可以打开/关闭单个键盘上的 Caps Lock 灯吗?

我有一台带多个键盘的电脑,所有大写锁定灯同步打开/关闭。(所以如果一个用户/键盘打开大写锁定,每个人都输入大写)我正在考虑在标志中保存每个键盘的大写锁定状态,但我才意识到灯不会对应每个用户/键盘的大写锁定状态。我只想知道大写锁定灯是否可以独立打开/关闭。我已经在计划禁用大写锁定(因为我真的不喜欢那个键),但如果客户想要使用它,我可以找到一种方法来做到这一点,或者告诉他们这是不可能的。 最佳答案 尝试http://www.codeguru.com/Cpp/W-P/system/keyboard/article.php/c2825有点复

windows - UMDH 日志(Windows 上的内存泄漏)

我正在使用UMDH工具来分析我的应用程序的内存泄漏。UMDH日志观察到的主要泄漏如下:237856226(241016812-3160586)3704833分配BackTraceE93685198(3704833-19635)BackTraceE9分配ntdll!RtlIpv4StringToAddressExW+00011866ntdll!RtlSubAuthorityCountSid+00000019MSVCR80!malloc+0000007A207093760(207355904-262144)791allocsBackTrace6EB790(791-1)个BackTrace6

windows - 从 NT/设备名称获取文件路径

我想将设备路径转换为文件路径。我想通过进程id获取进程名,所以我用的是这段代码PsLookupProcessByProcessId(processId,&pEProcess);ObOpenObjectByPointer(pEProcess,OBJ_KERNEL_HANDLE,NULL,0,NULL,KernelMode,&hProcess);ObDereferenceObject(pEProcess);nts=ZwQueryInformationProcess(hProcess,27,0,0,&ulSize);但它给出的路径为\Device\hardDiskVolume1\window

windows - 是什么导致磁盘上的驱动程序和映射到内存的驱动程序之间存在差异?

嘿,今天我尝试对NDIS.sys进行二进制比较,我发现了一些奇怪的东西。我接受了一个函数,并开始比较它。前30个字节在磁盘(使用IDA)和内存(使用WinDbg)上是相同的。然后,事情发生了变化。我看到类似“jmp_imp_XXXXX”的内容。JMP字节相同,但地址不同。我的问题是-是什么造成了差异?我认为这与搬迁有关。虽然跳转是在同一个模块中寻址,但它是一个长跳转,它相对于模块基地址。如果发生重定位,它也需要重定位这个地址,尽管它在同一个模块上。我是对还是完全错了?:-)谢谢。 最佳答案 是的,当一个模块没有加载到它在内存中的首选

c++ - 将 HTTP header 添加到 Windows 上的所有传出数据包?

我正在开发一个将驻留在系统托盘中的Windows应用程序。用户可以启用/禁用该应用程序。无论何时用户启用它,它都需要监听/嗅探HTTP流量并在所有传出数据包上添加特定的HTTPheader。我认为可以通过将系统或浏览器设置更改为localhost:my_port来完成。但是,这种方法有几个缺点,例如需要在我的应用程序中实现代理服务器。你能推荐一个更好的方法吗?我只需要在所有传出的HTTP数据包上添加一个特定的HTTPheader。我正在使用VisualC++6.0 最佳答案 执行此操作的最简单方法就是您所描述的:将浏览器配置为通过代

c++ - 使用 C++ 扫描本地 Windows 系统以查找连接的 USB 设备

使用C++扫描本地Windows系统以查找连接的USB设备的最佳方法是什么?我需要获取供应商和产品ID列表以匹配我的设备ID。如果有一种方法可以扫描特定的VID/PID组合,那就更好了。我的最终目标是检索Windows分配给设备的虚拟COM端口。如果有办法做到这一切,那就太棒了。一如既往,非常感谢示例。谢谢。 最佳答案 这几乎是您想要的MSDN示例:http://msdn.microsoft.com/en-us/library/ff558728%28VS.85%29.aspx如果您想访问这种功能,您似乎需要WDK(我能想到的每个MS

windows - Windows 上的 emacs23 : set-face-foreground seems to get forgotten during load of emacs. el

刚买了一台新的Windows笔记本电脑,在上面安装了emacs23。我以前的电脑使用emacs22的时间我不知道有多长。我有一个较长的emacs.el,它加载各种侧elisp库。我在emacs22中设置了一切。我将这个emacs.el连同所有其他elisp模块一起带到了新电脑上。启动emacs,一切看起来都很好。只有一个奇怪的问题。在emacs.el的顶部附近,我这样做:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;basic,defaultcolors(set-face-foreground'd

c++ - AssociateColorProfileWithDevice,你从哪里得到设备名称?

http://msdn.microsoft.com/en-us/library/dd371799(v=VS.85).aspx所以签名是这样的:BOOLWINAPIAssociateColorProfileWithDevice(PCTSTRpMachineName,PCTSTRpProfileName,PCTSTRpDeviceName);p机器名预订的。必须为NULL。此参数旨在指向要在其上关联指定配置文件和设备的机器的名称。NULL指针表示本地机器。p个人资料名称指向要关联的配置文件的文件名。p设备名称指向要关联的设备的名称。pMachineName假设为空,这很简单。pProfil